Triggers এবং Functions হল ডেটাবেস পরিচালন ব্যবস্থার গুরুত্বপূর্ণ উপাদান, যা ডেটাবেসে স্বয়ংক্রিয় কার্যক্রম পরিচালনা করতে সাহায্য করে। Triggers একটি নির্দিষ্ট ইভেন্টের জন্য স্বয়ংক্রিয়ভাবে চালিত হয়, এবং Functions হল পুনরায় ব্যবহারযোগ্য কোড যা ডেটাবেসে নির্দিষ্ট কাজ করতে ব্যবহৃত হয়।
তবে, CouchDB এবং MongoDB উভয়েই ঐতিহ্যগত SQL ডেটাবেসের মতো ট্রিগার বা ফাংশন সমর্থন করে না, কিন্তু কিছু আধুনিক NoSQL ডেটাবেসে ট্রিগার এবং ফাংশনালিটি রয়েছে, যা সাধারণত অ্যাপ্লিকেশন লেভেলে পরিচালিত হয়। নিচে Triggers এবং Functions সম্পর্কে বিস্তারিত আলোচনা করা হলো।
1. Triggers (ট্রিগার)
Triggers হল বিশেষ ধরনের স্নিপেট বা কোড, যা স্বয়ংক্রিয়ভাবে একটি নির্দিষ্ট ডেটাবেস ইভেন্ট (যেমন ইনসার্ট, আপডেট বা ডিলিট) সংঘটিত হলে চালিত হয়। SQL ডেটাবেসে, ট্রিগার সাধারণত INSERT, UPDATE, DELETE ইভেন্টের উপর ভিত্তি করে চলে। NoSQL ডেটাবেসে, বিশেষ করে CouchDB এবং MongoDB-তে, ট্রিগার ব্যবহারের জন্য অন্য ধরনের পদ্ধতি থাকতে পারে।
CouchDB তে Triggers
CouchDB তে কোনো সোজা ট্রিগার ব্যবস্থাপনা নেই, তবে আপনি CouchDB Design Documents এবং Views ব্যবহার করে কিছু ম্যানুয়াল প্রক্রিয়া তৈরি করতে পারেন। উদাহরণস্বরূপ, আপনি কিছু কাস্টম ফাংশন এবং MapReduce ব্যবহার করে ডেটার ওপর কিছু অটোমেটেড প্রসেস তৈরি করতে পারেন।
- Design Documents: CouchDB তে, ডেটা পরিবর্তন বা নতুন ডকুমেন্ট তৈরি করার পরে, views এবং functions ব্যবহার করা যেতে পারে, তবে এটি ট্রিগারের মতো কাজ করবে না। এটি শুধু কুয়েরি এবং ডেটা প্রসেসিংয়ের জন্য উপযুক্ত।
MongoDB তে Triggers
MongoDB তে Triggers সাধারণত Change Streams ব্যবহার করে তৈরি করা হয়, যা MongoDB 3.6 সংস্করণ থেকে উপলব্ধ। এটি একটি real-time ইভেন্ট ড্রিভেন সিস্টেম যেখানে ডেটা পরিবর্তনের সময় MongoDB ক্লাস্টারের মধ্যে সঠিক কাজের জন্য event listeners বসানো হয়। MongoDB-তে Change Streams ব্যবহার করে আপনি ডেটাবেসের পরিবর্তন বা আপডেটের প্রতি মনিটর করতে পারেন এবং সেই অনুযায়ী কার্যক্রম চালাতে পারেন।
MongoDB তে ট্রিগার কার্যক্রমের উদাহরণ হতে পারে:
const changeStream = db.collection.watch();
changeStream.on('change', (next) => {
console.log(next);
// Handle changes (Insert, Update, Delete) here
});
এই কোডটি MongoDB-র watch ফিচার ব্যবহার করে, যেটি ডেটাবেসের পরিবর্তন নজরদারি করে এবং আপনি যেকোনো পরিবর্তন ঘটলে কাস্টম ফাংশন চালাতে পারেন।
2. Functions (ফাংশন)
Functions হল কোডের পুনঃব্যবহারযোগ্য অংশ, যা নির্দিষ্ট ইনপুট নিয়ে কার্য সম্পাদন করে। SQL ডেটাবেসে stored functions বা user-defined functions (UDFs) ব্যবহৃত হয়, যেখানে আপনি একাধিক ইনপুট দিয়ে একটি নির্দিষ্ট কাজ সম্পাদন করতে পারেন। NoSQL ডেটাবেসে, সাধারণত এটি অ্যাপ্লিকেশন লেভেল ফাংশন হিসাবে কার্যকর হয়, তবে কিছু NoSQL ডেটাবেসে সীমিত ফাংশনালিটি রয়েছে।
CouchDB তে Functions
CouchDB তে functions সাধারণত views এবং MapReduce কৌশলগুলির মাধ্যমে তৈরি করা হয়। JavaScript ব্যবহার করে আপনি কিছু কাস্টম ফাংশন তৈরি করতে পারেন, যা ডেটাবেসের উপর কাজ করবে। CouchDB-তে ফাংশন মূলত MapReduce ফাংশনালিটি হিসেবে কাজ করে।
CouchDB View Function Example:
function(doc) {
if (doc.type === "user") {
emit(doc.name, doc.age);
}
}
এই কোডটি user ধরনের ডকুমেন্টের নাম এবং বয়স প্রদর্শন করবে, যা একটি কাস্টম ফাংশনের মাধ্যমে করা হচ্ছে।
MongoDB তে Functions
MongoDB তে functions অ্যাপ্লিকেশন স্তরে সাধারণত JavaScript, Node.js, Python ইত্যাদির মাধ্যমে তৈরি করা হয়। MongoDB server-side JavaScript এবং MongoDB Atlas Functions সাপোর্ট করে, যা কাস্টম কোড চালাতে ব্যবহৃত হয়। MongoDB Atlas Functions ব্যবহার করে ক্লাউডে ফাংশন তৈরি করতে পারেন।
MongoDB Atlas Function Example:
exports = function(payload) {
const collection = context.services.get("mongodb-atlas").db("sampleDB").collection("users");
return collection.find({ age: { $gt: 18 } }).toArray();
};
এই ফাংশনটি MongoDB Atlas ক্লাউডের মধ্যে ডেটা ফিল্টারিং এবং রিটার্ন করার জন্য ব্যবহৃত হবে।
CouchDB এবং MongoDB তে Triggers এবং Functions এর পার্থক্য
| বৈশিষ্ট্য | CouchDB | MongoDB |
|---|---|---|
| Triggers | সরাসরি ট্রিগার সমর্থন করে না, তবে views এবং functions ব্যবহার করা যায় | Change Streams সমর্থন করে, যা ডেটাবেস পরিবর্তন নজরদারি করে |
| Functions | MapReduce ফাংশনালিটি, JavaScript ব্যবহার করা হয় | Atlas Functions এবং server-side JavaScript |
| প্রক্রিয়া | Views এবং MapReduce এর মাধ্যমে প্রক্রিয়া করা হয় | MongoDB এর watch ফিচার ব্যবহার করে real-time কার্য সম্পাদন |
| ট্রিগার বা ফাংশনের কার্যক্রম | কোড বা ফাংশন কাস্টম লজিকের সাথে যুক্ত | পরিবর্তনের উপর ভিত্তি করে সিস্টেমে কার্যকারিতা অটোমেটেড হয় |
সারাংশ
Triggers এবং Functions ডেটাবেসে স্বয়ংক্রিয় কার্যক্রম পরিচালনা করার জন্য খুবই গুরুত্বপূর্ণ। CouchDB এবং MongoDB উভয়েই বিভিন্ন পদ্ধতিতে এই কার্যক্রম সম্পন্ন করে, তবে তাদের বাস্তবায়ন ভিন্ন। CouchDB তে MapReduce এবং views ব্যবহার করে কার্য সম্পাদন করা হয়, whereas MongoDB তে Change Streams এবং Atlas Functions ব্যবহৃত হয়। MongoDB বেশ কিছু ক্ষেত্রে real-time ডেটা পরিবর্তন মনিটর করতে সহায়ক এবং ফাংশনগুলিকে আরও ডাইনামিক ভাবে প্রয়োগ করা সম্ভব।
Read more